package com.jlu.feignclient;

import com.jlu.entity.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@FeignClient("Product")
public interface ProductClient {

  @GetMapping("product/productList")
  String product();

  @GetMapping("product/list")
  String list();

//  零散类型参数 用RequestParam指定发送方式，即?name=xxx&age=12

  @GetMapping("product/test")
  String test(@RequestParam("name")String name,@RequestParam("age")Integer age);

//  零散类型参数 用PathVariable指定发送方式，即路径发送
  @GetMapping("product/test1/{id}/{name}")
  String test1(@PathVariable("id")Integer id,@PathVariable("name")String name);

//  对象类型传递，需要指定数据格式,@RequestBody表示json格式，@RequestPart表示以form表单的形式,但必须涉及到文件
  @PostMapping("product/test2")
  String test2(@RequestBody Product product);

//  数组类型，需使用@RequestParam注解
  @GetMapping("product/test3")
  String test3(@RequestParam("ids") String ids[]);

//  集合类型
  @GetMapping("product/test4")
  String test4(@RequestParam("ids") String ids[]);

//  以id查询对象
  @GetMapping("/product/product/{id}")
  Product test5(@PathVariable("id")Integer id);

//  以id查询list
  @GetMapping("product/products")
  List<Product> list(@RequestParam("id")Integer id);

//  以id分页查询商品信息和总条数
@GetMapping("product/productss")
  String findByCategoryIdAndPage(@RequestParam("id")Integer id,@RequestParam("rows")Integer rows,@RequestParam("page")Integer page);
}
